Copyright ã1995 by NeXT Computer, Inc.  All Rights Reserved.

Protocols

IXBlockAndStoreAccess

Adopted By:	IXBTree,
IXFileFinder,
IXRecordManager,
IXStoreBlock,
IXStoreDirectory

Initializing and Freeing a Client

- initInStore:(IXStore *)aStore	Initializes a new store client in aStore

- initFromBlock:(unsigned int)aHandle	Initializes a store client from data previously stored in the
inStore:(IXStore *)aStore		block identified by aHandle in aStore

- freeFromStore	Removes the store client's storage from the IXStore and frees the run-time object

+ freeFromBlock:(unsigned int)aHandle	Frees the data for the store client identified by aHandle in
inStore:(IXStore *)aStore		aStore, without necessarily creating an instance

Retrieving the Block and Store

- getBlock:(unsigned int *)aHandle	Gets the identifier of the block owned by the store client,
andStore:(IXStore **)aStore		and the IXStore that the block exists in

IXComparatorSetting

Adopted By:	IXBTree

Methods

- setComparator:(IXComparator *)aComparator	Sets the function used to compare items; also
andContext:(const void *)aContext		provides aContext as arbitrary data to use in comparison

- getComparator:(IXComparator **)aComparator	Gets the comparator function and context
andContext:(const void **)aContext

IXComparisonSetting

Adopted By:	IXBTree

Methods

- setComparisonFormat:(const char *)format	Sets the data format of items compared by the receiver

- (const char *)comparisonFormat	Returns the data format of items compared

IXCursorPositioning

Adopted By:	IXBTreeCursor

Absolute Positioning

- (BOOL)setKey:(void *)aKey	Sets the position of the receiver to aKey, if it exists,
andLength:(unsigned int)aLength		otherwise to where aKey would logically be; returns YES if aKey exists

- (BOOL)getKey:(void **)aKey	Gets the key for the receiver's position and its length,
andLength:(unsigned int *)aLength		sliding the receiver forward in the key space if needed and if possible; returns YES if the receiver ends up on a key

Relative Positioning

- (BOOL)setFirst	Positions the receiver at the first key if there is one; returns YES if there is one, NO if not

- (BOOL)setNext	Moves the receiver forward one key value and returns YES if there's a key there

- (BOOL)setLast	Positions the receiver at the last key if there is one; returns YES if there is one, NO if not

- (BOOL)setPrevious	Moves the receiver back one key value and returns YES if there's a key there

Checking Positioning Success

- (BOOL)isMatch	Returns YES if the receiver is on akey, NO if it's between two keys or off either end of the key space

IXFileFinderConfiguration

Adopted By:	IXFileFinder

Managing Attribute Parsers

- setAttributeParsers:(List *)aList	Sets the IXAttributeParsers used to parse files

- getAttributeParsers:(List *)aList	Returns in aList the IXAttributeParsers used to parse files

Generating Descriptions

- setGeneratesDescriptions:(BOOL)flag	Sets whether descriptions are generated automatically for files indexed

- (BOOL)generatesDescriptions	Returns whether descriptions are generated automatically for files indexed

Enabling Automatic Updating

- setUpdatesAutomatically:(BOOL)flag	Sets whether the file finder automatically updates its indexes upon finding out of date references

- (BOOL)updatesAutomatically	Returns whether the file finder automatically updates its indexes

Setting File System Options

- setCrossesDeviceChanges:(BOOL)flag	Sets whether the file finder indexes or searches files on a different device from its root directory

- (BOOL)crossesDeviceChanges	Returns whether the file finder indexes or searches files on a different device from its root directory

- setFollowsSymbolicLinks:(BOOL)flag	Sets whether the file finder follows symbolic links when building indexes

- (BOOL)followsSymbolicLinks	Returns whether the file finder follows symbolic links when building indexes

- setScansForModifiedFiles:(BOOL)flag	Sets whether the file finder scans for files whose modification times have changed

- (BOOL)scansForModifiedFiles	Returns whether the file finder scans for modified files

Ignoring Files

- setIgnoredTypes:(const char *)types	Sets to types the types of files that won't be indexed

- (char *)ignoredTypes	Returns the types of files that aren't indexed

- setIgnoredNames:(const char *)names	Sets to names the literal, base names of files that won't be indexed

- (char *)ignoredNames	Returns the names of files that aren't indexed

IXFileFinderQueryAndUpdate

Adopted By:	IXFileFinder

Getting the Target Directory

- (const char *)rootPath	Returns the base path for the file finder's index

Getting the Record Manager

- recordManager	Returns the object that stores the file finder's IXFileRecords

Performing Queries

- (IXPostingList *)performQuery:(const char *)aQuery
atPath:(const char *)path	Evaluates aQuery for sender returning in an
forSender:sender		IXPostingList the IXFileRecords that match

- stopQueryForSender:sender	Stops the query requested by sender

Updating Indexes

- updateIndexAtPath:(const char *)path	Updates the indexes for files within path relative to the file
forSender:sender		finder's root path

- (BOOL)isUpdating	Returns whether the file finder is updating its indexes

- suspendUpdating	Suspends updating of indexes

- resumeUpdating	Resumes updating of indexes

- clean	Removes inaccurate or out of data information from indexes

- reset	Completely empties indexes

Methods Implemented by the Sender of a Query or Update

- fileFinder:(IXFileFinder *)aFinder	Asynchronously notifies the sender of a
didFindFile:(IXFileRecord *)aRecord		performQuery:atPath:forSender: message that aRecord matches the query

- fileFinder:(IXFileFinder *)aFinder	Asynchronously notifies the sender of an
didFindList:(IXPostingList *)aList		performQuery:atPath:forSender: message that the IXFileRecords in aList match the query

- fileFinder:(IXFileFinder *)aFinder	Asynchronously notifies the sender of an
willAddFile:(IXFileRecord *)aRecord		updateIndexAtPath:forSender: message that aRecord is about to be added to the index

IXLexemeExtraction

Adopted By:	No NeXTSTEP classes.

Lexing a Stream

- (unsigned int)getLexeme:(char *)aString	Puts the next lexeme from stream into aString
inLength:(unsigned int)aLength
fromStream:(NXStream *)stream

Manipulating a Word/Lexeme

- (unsigned int)foldCase:(char *)aString	Reduces aString to lowercase letters
inLength:(unsigned int)aLength

IXNameAndFileAccess

Adopted By:	IXBTree,
IXFileFinder,
IXRecordManager,
IXStoreDirectory

Incorporates:	IXBlockAndStoreAccess

Initializing and Freeing a Client

- initWithName:(const char *)aName	Initializes a new store client under aName in filename
 inFile:(const char *)filename

- initFromName:(const char *)aName	Initializes a store client from data previously stored under
inFile:(const char *)filename		aName in filename; if flag is YES, changes can be
forWriting:(BOOL)flag		written back to the file

- freeFromStore	Removes the store client's storage from the IXStoreFile and frees the run-time object

+ freeFromName:(const char *)aName	Frees the data for the store file client identified by aName in
andFile:(const char *)filename		filename, without necessarily creating an instance

Retrieving the Name and File

- getName:(const char **)aName	Gets the name of the store client, and the name of the file
andFile:(const char **)filename		that the data exists in

IXPostingExchange

Adopted By:	IXPostingCursor
IXPostingList
IXPostingSet

Methods

- setCount:(unsigned int)count	Sets the receiver's posting set to count postings
andPostings:(IXPosting *)postings

- getCount:(unsigned int *)count	Gets the receiver's postings and their amount
andPostings:(IXPosting **)thePostings

IXPostingOperations

Adopted By:	IXPostingCursor
IXPostingSet

Manipulating Postings by Handle

- (unsigned int)addHandle:(unsigned int)aHandle	Adds a postings to the set of postings
withWeight:(unsigned int)aWeight

- removeHandle:(unsigned int)aHandle	Removes a postings from the set

Getting the Number of Postings

- (unsigned int)count	Returns the number of postings in the set

Emptying a Posting Set

- empty	Empties all postings from the set

Traversing a Posting Set

- (unsigned int)setHandle:(unsigned int)aHandle	Sets the selected posting to the one with aHandle and returns that handle, or 0 if aHandle isn't in the set

- (unsigned int)getHandle:(unsigned int *)aHandle	Gets the handle and weight of the selected posting
andWeight:(unsigned int *)aWeight

- (unsigned int)setFirstHandle	Sets the selected posting to the first in the set and returns its handle, or 0 if there are no postings

- (unsigned int)setNextHandle	Sets the selected posting to the next in the set and returns its handle, or 0 if there are no more postings

IXRecordReading

Adopted By:	No NeXTSTEP classes

Methods

- (unsigned int)count	Returns the number of records in the archive

- readRecord:(unsigned int)aHandle	Reads the record identified by aHandle and returns the
fromZone:(NXZone *)zone		corresponding object allocated from zone

IXRecordTranscription

Adopted By:	No NeXTSTEP classes.

Methods

- source:aTranscriber	Notifies the record identified by aHandle that it's been read
didReadRecord:(unsigned int)aHandle

- source:aTranscriber	Notifies the record identified by aHandle that it's going to
willWriteRecord:(unsigned int)aHandle		be written

- finishReading	Allows a record just read to reinitialize itself or provide a replacement

IXRecordWriting

Adopted By:	IXRecordManager

Incorporates:	IXRecordReading

Manipulating Records by Handle

- (unsigned int)addRecord:anObject	Adds anObject to the receiver's archive

- replaceRecord:(unsigned int)aHandle	Replaces the record identified by aHandle with anObject
with:anObject

- removeRecord:(unsigned int)aHandle	Removes from the archive the record identified by aHandle

Emptying a Record Storer

- empty	Empties the receiver's archive of all records

IXTransientAccess

Adopted By:	IXRecordManager

Methods

- (BOOL)getDoubleValue:(double *)aValue	Retrieves as a double the value of ivarName for the object
ofIvar:(const char *)ivarName		whose record is identified by aHandle
forRecord:(unsigned int)aHandle

- (BOOL)getFloatValue:(float *)aValue	Retrieves as a float the value of ivarName for the object
ofIvar:(const char *)ivarName		whose record is identified by aHandle
forRecord:(unsigned int)aHandle

- (BOOL)getIntValue:(int *)aValue	Retrieves as a int the value of ivarName for the object
ofIvar:(const char *)ivarName		whose record is identified by aHandle
forRecord:(unsigned int)aHandle

- (BOOL)getObjectValue:(Object **)aValue	Retrieves as a object the value of ivarName for the object
ofIvar:(const char *)ivarName		whose record is identified by aHandle
forRecord:(unsigned int)aHandle

- (BOOL)getOpaqueValue:(NXData **)aValue	Retrieves as untyped data the value of ivarName for the
ofIvar:(const char *)ivarName		object whose record is identified by aHandle
forRecord:(unsigned int)aHandle

- (BOOL)getStringValue:(char **)aValue	Retrieves as a string the value of ivarName for the object
ofIvar:(const char *)ivarName		whose record is identified by aHandle
forRecord:(unsigned int)aHandle

- (BOOL)getStringValue:(char **)aValue	Retrieves as a string no longer than aLength the value of
inLength:(unsigned int)aLength		ivarName for the object whose record is identified
ofIvar:(const char *)ivarName		by aHandle
forRecord:(unsigned int)aHandle

IXTransientMessaging

Adopted By:	IXRecordManager

Methods

- (BOOL)getDoubleValue:(double *)aValue	Retrieves as a double the value obtained by sending
ofMessage:(SEL)aSelector		aSelector to the object whose record is identified
forRecord:(unsigned int)aHandle		by aHandle

- (BOOL)getFloatValue:(float *)aValue	Retrieves as a float the value obtained by sending
ofMessage:(SEL)aSelector		aSelector to the object whose record is identified
forRecord:(unsigned int)aHandle		by aHandle

- (BOOL)getIntValue:(int *)aValue	Retrieves as a int the value obtained by sending
ofMessage:(SEL)aSelector		aSelector to the object whose record is identified
forRecord:(unsigned int)aHandle		by aHandle

- (BOOL)getObjectValue:(Object **)aValue	Retrieves as an object the value obtained by sending
ofMessage:(SEL)aSelector		aSelector to the object whose record is identified
forRecord:(unsigned int)aHandle		by aHandle

- (BOOL)getOpaqueValue:(NXData **)aValue	Retrieves as untyped data the value obtained by sending
ofMessage:(SEL)aSelector		aSelector to the object whose record is identified
forRecord:(unsigned int)aHandle		by aHandle

- (BOOL)getStringValue:(char **)aValue	Retrieves as a string the value obtained by sending
ofMessage:(SEL)aSelector		aSelector to the object whose record is identified
forRecord:(unsigned int)aHandle		by aHandle

- (BOOL)getStringValue:(char **)aValue	Retrieves as a string no longer than aLength the value 
inLength:(unsigned int)aLength		obtained by sending aSelector to the object whose 
ofMessage:(SEL)aSelector		record is identified by aHandle
forRecord:(unsigned int)aHandle